<?xml version="1.0"?>
<component name="org.nuxeo.admin.pageproviders.override">

  <require>org.nuxeo.admin.pageproviders</require>

  <extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">

    <genericPageProvider class="org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider" name="permissions_purge">
      <whereClause docType="PermissionsSearch">
        <fixedPart statement="SELECT ecm:uuid, dc:title, ecm:acl/*1/principal, ecm:acl/*1/creator, ecm:acl/*1/permission, ecm:acl/*1/begin, ecm:acl/*1/end, ecm:acl/*1/status FROM Document">
          ecm:mixinType != 'HiddenInNavigation'
          AND ecm:isVersion = 0
          AND SORTED_COLUMN IS NOT NULL
        </fixedPart>
        <predicate operator="IN" parameter="ecm:acl/*1/principal">
          <field name="ace_username" schema="permissions_search"/>
        </predicate>
        <predicate operator="IN" parameter="ecm:ancestorId">
          <field name="ecm_ancestorIds" schema="permissions_search"/>
        </predicate>
      </whereClause>
      <pageSize>20</pageSize>
      <sort ascending="true" column="dc:title"/>
    </genericPageProvider>

    <coreQueryPageProvider name="permissions_search_folders">
      <pattern escapeParameters="true" quoteParameters="false">
        SELECT * FROM Document WHERE dc:title LIKE '?%' AND ecm:mixinType = 'Folderish'
        AND ecm:mixinType != 'HiddenInNavigation' AND ecm:isVersion = 0 AND
        ecm:isTrashed = 0
      </pattern>
      <pageSize>10</pageSize>
    </coreQueryPageProvider>

    <genericPageProvider class="org.nuxeo.ecm.platform.audit.api.AuditPageProvider" name="EVENTS_VIEW">
      <whereClause docType="BasicAuditSearch">
        <predicate operator="BETWEEN" parameter="log.eventDate">
          <field name="startDate" schema="basicauditsearch"/>
          <field name="endDate" schema="basicauditsearch"/>
        </predicate>
        <predicate operator="=" parameter="log.category">
          <field name="eventCategory" schema="basicauditsearch"/>
        </predicate>
        <predicate operator="IN" parameter="log.eventId">
          <field name="eventIds" schema="basicauditsearch"/>
        </predicate>
        <predicate operator="=" parameter="log.principalName">
          <field name="principalName" schema="basicauditsearch"/>
        </predicate>
      </whereClause>
      <sort ascending="false" column="log.eventDate"/>
      <pageSize>10</pageSize>
      <maxPageSize>1000</maxPageSize>
    </genericPageProvider>

    <genericPageProvider class="org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider" name="PERMISSIONS_SEARCH">
      <whereClause docType="PermissionsSearch">
        <fixedPart escapeParameters="false" quoteParameters="false" statement="SELECT ecm:uuid, dc:title, ecm:acl/*1/principal, ecm:acl/*1/creator, ecm:acl/*1/permission,               ecm:acl/*1/begin, ecm:acl/*1/end, ecm:acl/*1/status FROM Document">
          ecm:mixinType != 'HiddenInNavigation'
          AND ecm:isVersion = 0
          AND SORTED_COLUMN IS NOT NULL
          ?
        </fixedPart>
        <predicate operator="IN" parameter="ecm:acl/*1/principal">
          <field name="ace_username" schema="permissions_search"/>
        </predicate>
        <predicate operator="IN" parameter="ecm:acl/*1/creator">
          <field name="ace_creator" schema="permissions_search"/>
        </predicate>
        <predicate operator="IN" parameter="ecm:acl/*1/permission">
          <field name="ace_permission" schema="permissions_search"/>
        </predicate>
        <predicate operator="&lt;=" parameter="ecm:acl/*1/begin">
          <field name="ace_begin" schema="permissions_search"/>
        </predicate>
        <predicate operator=">=" parameter="ecm:acl/*1/end">
          <field name="ace_end" schema="permissions_search"/>
        </predicate>
        <predicate operator="LIKE" parameter="ecm:acl/*1/name">
          <field name="ace_acl_name" schema="permissions_search"/>
        </predicate>
        <predicate operator="IN" parameter="ecm:ancestorId">
          <field name="ecm_ancestorIds" schema="permissions_search"/>
        </predicate>
      </whereClause>
      <parameter>#{adminPermissionsActions.ACEStatusFixedPart}</parameter>
      <pageSize>20</pageSize>
      <sort ascending="true" column="dc:title"/>
    </genericPageProvider>


  </extension>

</component>
